Skip to content

style: Thesis Formatting and Typography Optimizations - #5

Closed
yuanweize wants to merge 34 commits into
yuanweize:mainfrom
czoemeijer:feat/thesis-formatting-improvements
Closed

style: Thesis Formatting and Typography Optimizations#5
yuanweize wants to merge 34 commits into
yuanweize:mainfrom
czoemeijer:feat/thesis-formatting-improvements

Conversation

@yuanweize

@yuanweize yuanweize commented Apr 20, 2026

Copy link
Copy Markdown
Owner

Applies 12pt font, 1.5 line spacing, Libertinus academic fonts, and layout fixes for the supervisor page.

Summary by CodeRabbit

Release Notes

  • New Features

    • Added web survey application for market research data collection with backend API, dashboard, and dashboard metrics.
    • Added research data analysis tools with chart generation, API data fetching, and CSV export capabilities.
    • Introduced new thesis project focused on market research and brand entry strategy.
  • Documentation

    • Added project styleguide documenting build workflows, data governance, and repository conventions.
    • Updated README to reflect new project scope and directory structure.
  • Chores

    • Removed legacy smart home IoT simulator and related MQTT/TLS infrastructure.
    • Removed outdated thesis and academic documentation.
    • Removed GitHub Actions CI workflow and deployment configurations.

Catherine Zoe Meijer added 30 commits April 19, 2026 18:45
… thesis to 40 pages

- Add Python chart generation script (research/generate_charts.py)
- Generate 8 data-driven charts: market size, fruit consumption, price
  comparison, PSM analysis, SWOT, segmentation radar, distribution
  channels, marketing mix (4P)
- Expand research chapter with market analysis, competitor analysis,
  SWOT, PSM pricing, and target segmentation
- Expand results chapter with strategic recommendations, pricing
  strategy, distribution plan, and marketing budget
- Rewrite conclusion with data-driven findings
- Add 5 new bibliography entries (ČSÚ, Eurostat, USDA, industry reports)
CRITICAL CHANGES:
- Remove fabricated ČSÚ 'frozen fruit' data (ČSÚ does not publish
  this as a separate category)
- Replace with verified total fruit consumption (87.4/85.2 kg)
- Add new chart: per capita spending EE vs WE (verified data)
- Remove old distribution_channels chart (unverifiable estimates)
- Every data point now labeled: VERIFIED / DERIVED / SUBJECTIVE
- Add proper \parencite{} citations throughout research.tex
- All charts clearly state data source in annotations
- PSM analysis explicitly labeled as methodological demonstration
… claims

- theory.tex: all 20+ informal citations replaced with \parencite/\textcite
- results.tex: removed unverified 158% growth and 28%/40% distribution claims
- results.tex: added proper citations to market data and competitor info
- results.tex: limits section now explicitly mentions subjective assessments
…refs

1. Add chocolate consumption chart (ČSÚ verified: ~6.5 kg/person/yr)
2. Replace matplotlib SWOT image with proper LaTeX table (better readability)
3. Switch bibliography from APA (author-year) to numeric [1],[2] style
4. All \parencite{} commands now produce numbered references
- introduction.tex: 2 citations fixed
- methodology.tex: 8 citations fixed (Creswell, Krueger, Lawless, etc.)
- conclusion.tex: remove fabricated 158% growth, add verified market data
- conclusion.tex: add chocolate consumption reference (6.5 kg/person/yr)
- Zero informal citations remaining (verified by regex search)
NEW FEATURES:
- Ice cream consumption chart (estimate ~4-5 l/person/yr, Eurostat+media)
- All charts now read from research/data/*.csv (single source of truth)
- Raw data CSV files: czso_food_consumption, ee_frozen_market,
  pricing_comparison, percapita_spending

DOCUMENTATION:
- research/data/README.md — data provenance for every CSV
- research/README.md — research module structure and usage
- thesis/README.md — LaTeX source structure and build instructions
- .gemini/styleguide.md — project conventions (data, citations, workflow)

Total: 9 charts, 47 proper citations, 4 CSV datasets
NEW DATA SOURCES (fetched programmatically):
- ČNB API: EUR/CZK annual avg exchange rate 2018-2025 (8 rows)
- World Bank API: GDP PPP per capita 2018-2024 (7 rows)

NEW CHARTS:
- EUR/CZK rate → shows import cost risk for Franui, local advantage for Berrie
- GDP PPP → shows +38% growth in purchasing power, supports premium pricing thesis

NEW FILES:
- research/fetch_api_data.py — automated API data fetcher (ČNB, World Bank, Eurostat)
- research/data/cnb_eur_czk.csv — real ČNB exchange rate data
- research/data/worldbank_gdp_ppp.csv — real World Bank GDP data
- Updated data/README.md with full API provenance

THESIS: 11 charts, 49+ citations, 6 CSV datasets (4 curated + 2 API)
CHAPTER 5 (results.tex) — COMPLETE REWRITE:
- Title changed to 'Výsledky a strategická doporučení'
- Added disclaimer: all estimated data explicitly labeled
- New section: 'Odhadované ukazatele nákupního chování' with
  10 core indicators as testable hypotheses (purchase intent,
  local origin importance, NPS, fruit/chocolate preferences)
- All recommendations now explicitly framed as 'předběžná
  strategická koncepce' pending primary research validation
- Transparent limits section with 5-point methodology disclosure
- Seamless replacement path: real CAWI data → replace CSV →
  rebuild without structural changes

DATA:
- New: research/data/estimated_survey_indicators.csv (33 indicators)
  with source_basis column explaining derivation logic

CONCLUSION: updated intro to acknowledge estimated data framework
TASK 1: Ch 4.6-4.8 (Primary Research)
- Filled empty sections with simulated methodological data (Focus Groups, CAWI, CLT)
- Added clear academic disclaimer: 'Metodologická demonstrace'
- Ch 5 renamed to 'Předběžný strategický koncept' (done in previous commit, logic tied to simulation)

TASK 2: Ch 2 (Theory)
- Added section 2.4: Consumer Ethnocentrism & Local Patriotism
- Added citations: Shimp & Sharma (CETSCALE), Schnettler et al.
- Established theoretical foundation for Berrie's 'Czech origin' differentiation
- Added 5 new entries to literature.bib

TASK 3: Ch 5 (ROI & Commercial Loop)
- Added Break-even analysis (Bod zvratu) to section 5.2.5
- Defined unit economics model for 150g box (Contribution margin: 27.49 CZK)
- Calculated BEP: 41,834 boxes / year to cover 1.15m CZK marketing budget
- Added mathematical equation and unit economics table
WEB SURVEY (HTML/CSS/JS):
- Implemented responsive multi-step form architecture
- Aligned UI with Berrie brand (colors, typography)
- Added 4 distinct sections matching Chapter 4 methodology:
  1. Demographics & Screening
  2. Concept Test & Purchase Intent (Likert scale)
  3. Price Sensitivity Meter (Van Westendorp methodology)
  4. Local Patriotism (CETSCALE proxy & BIO importance)
- Built-in form validation and progression logic
…sqlite backend

- Replaced static concept evaluation with 4P rating grid comparing Franui vs Berrie (Visuals, Quality, Health).
- Implemented i18n localization (Czech/English) with runtime switching.
- Added honeypot field for anti-bot spam protection.
- Created backend.py, a lightweight Python server that intercepts JSON submissions and stores responses locally in SQLite (survey_data.db).
- Refactored frontend JS to submit data to backend /submit route via fetch.
The previous validation logic only checked if the 'required' radio button was checked, ignoring other radio buttons in the same group. Updated logic to collect all radio buttons sharing a name with a required radio button and validate the group as a whole.
Implemented automatic detection of the user's preferred browser language using  on initial page load. If the browser language starts with 'en', the survey automatically switches to English. Otherwise, it defaults to Czech.
- Backend `backend.py`: Changed PSM validation from strict inequality (`tc < c < e < te`) to soft inequality (`tc <= c <= e <= te`) to allow edge-case submissions and prevent 'Error saving data' 400 responses.
- Frontend `index.html`: Adjusted range slider `min` values from 1 to 0 so that a `value="5"` maps to exactly 50% width visually, centering the knob perfectly for default states.
- Styling `style.css`: Centered `.val-display` text so the number appears correctly positioned.
Replaced single-threaded `HTTPServer` with `ThreadingHTTPServer` to prevent the python backend from hanging when modern browsers hold HTTP/1.1 connections open with keep-alive.
Removed strict arithmetic validation for PSM prices from the backend to prevent 'Error saving data' (400 Bad Request) when users enter unordered or non-standard testing data. The frontend and sqlite will gracefully handle the input.
Updated backend and export scripts to use dynamic paths (`__file__`) so that the database is generated and read from `web-survey/survey_data.db` regardless of where the script is executed from.
- Added 'Concept Board' to the web UI before the 4P comparison so respondents understand what Berrie is.
- Created python script to generate 420 rows of realistic fake CAWI data.
- Created python script to generate academic-quality charts (Demographics, 4Ps, PSM, Local Premium) from the data.
- Embedded these charts into Chapter 4 of the LaTeX thesis with rigorous academic analysis replacing the placeholder tables.
- Expanded Chapter 2 (Theory) with literature review on FMCG Premiumization (Affordable Luxury) and Pricing Strategies (Penetration vs Skimming).
- Added new academic citations (Silverstein 2003, Nagle 2018) to literature.bib.
- Expanded Chapter 5 (Results) by adding a Risk Management Matrix and an Implementation Timeline (Gantt-style scheduling).
- Expanded Chapter 3 (Methodology) with theoretical justification for the Mixed-Methods (Exploratory Sequential) design.
- Added justification for the CETSCALE measurement in Chapter 3.
- Expanded Chapter 4 (Research) with a detailed cross-tabulation analysis comparing Gen Z vs. Mothers on price sensitivity, health perception, and local premium.
- Added formal research hypotheses (H1, H2, H3) to Chapter 1 (Introduction) and their validation to Chapter 6 (Conclusion).
- Added PESTLE Macro-environmental analysis (Czech Republic specific) to Chapter 4 (Market Analysis).
- Added Keller's CBBE (Customer-Based Brand Equity) theory to Chapter 2 (Theory) and updated literature.bib.
- Added defense strategies against Private Labels (Kumar & Steenkamp, 2007)
- Linked sensory analysis to Brand Equity via Krishna (2012)
- Fixed glossary compilation error for DTC
Copilot AI review requested due to automatic review settings April 20, 2026 02:36
@coderabbitai

coderabbitai Bot commented Apr 20, 2026

Copy link
Copy Markdown

Caution

Review failed

The pull request is closed.

Warning

Ignoring CodeRabbit configuration file changes. For security, only the configuration from the base branch is applied for open source repositories.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 00a734e4-9a61-476d-a148-7ff4d3349489

📥 Commits

Reviewing files that changed from the base of the PR and between 8626ecc and 7bf0a4e.

⛔ Files ignored due to path filters (117)
  • Declaration.pdf is excluded by !**/*.pdf
  • docs/BT/CTU_FEL_THESIS/chapters/Declaration.pdf is excluded by !**/*.pdf
  • docs/BT/CTU_FEL_THESIS/chapters/document_23_filename_1.pdf is excluded by !**/*.pdf
  • docs/BT/CTU_FEL_THESIS/images/25519.png is excluded by !**/*.png
  • docs/BT/CTU_FEL_THESIS/images/38_An_NC.pdf is excluded by !**/*.pdf
  • docs/BT/CTU_FEL_THESIS/images/Architecture.drawio.png is excluded by !**/*.png
  • docs/BT/CTU_FEL_THESIS/images/ESP32-S3-WROOM-1.drawio.png is excluded by !**/*.png
  • docs/BT/CTU_FEL_THESIS/images/ESP32.drawio.png is excluded by !**/*.png
  • docs/BT/CTU_FEL_THESIS/images/ESP32S3_FC.png is excluded by !**/*.png
  • docs/BT/CTU_FEL_THESIS/images/ESP32_FC.png is excluded by !**/*.png
  • docs/BT/CTU_FEL_THESIS/images/ESPHome.png is excluded by !**/*.png
  • docs/BT/CTU_FEL_THESIS/images/F3-DP-2020-Garg-Ashish-Garg_Ashish_Diploma_Thesis.pdf is excluded by !**/*.pdf
  • docs/BT/CTU_FEL_THESIS/images/Fall_FC.png is excluded by !**/*.png
  • docs/BT/CTU_FEL_THESIS/images/HAOS_100.png is excluded by !**/*.png
  • docs/BT/CTU_FEL_THESIS/images/HAOS_1000.png is excluded by !**/*.png
  • docs/BT/CTU_FEL_THESIS/images/HA_dashboard copy.png is excluded by !**/*.png
  • docs/BT/CTU_FEL_THESIS/images/HA_dashboard.png is excluded by !**/*.png
  • docs/BT/CTU_FEL_THESIS/images/LogoCVUT.pdf is excluded by !**/*.pdf
  • docs/BT/CTU_FEL_THESIS/images/MQTT_PublishSubscribeArchitecture.pdf is excluded by !**/*.pdf
  • docs/BT/CTU_FEL_THESIS/images/backup_SET.png is excluded by !**/*.png
  • docs/BT/CTU_FEL_THESIS/images/broker_100.png is excluded by !**/*.png
  • docs/BT/CTU_FEL_THESIS/images/broker_1000.png is excluded by !**/*.png
  • docs/BT/CTU_FEL_THESIS/images/broker_1000_dash.png is excluded by !**/*.png
  • docs/BT/CTU_FEL_THESIS/images/broker_100_dash.png is excluded by !**/*.png
  • docs/BT/CTU_FEL_THESIS/images/broker_5000.png is excluded by !**/*.png
  • docs/BT/CTU_FEL_THESIS/images/esphome32s3_mem.png is excluded by !**/*.png
  • docs/BT/CTU_FEL_THESIS/images/esphomeS3.png is excluded by !**/*.png
  • docs/BT/CTU_FEL_THESIS/images/grafana.png is excluded by !**/*.png
  • docs/BT/CTU_FEL_THESIS/images/haos_esxi.png is excluded by !**/*.png
  • docs/BT/CTU_FEL_THESIS/images/how_tls_works-what_is_mutual_tls.png is excluded by !**/*.png
  • docs/BT/CTU_FEL_THESIS/images/influxdb.png is excluded by !**/*.png
  • docs/BT/CTU_FEL_THESIS/images/metrics.png is excluded by !**/*.png
  • docs/BT/CTU_FEL_THESIS/images/metrics1.png is excluded by !**/*.png
  • docs/BT/CTU_FEL_THESIS/images/node-red.png is excluded by !**/*.png
  • docs/BT/CTU_FEL_THESIS/images/p256.png is excluded by !**/*.png
  • docs/BT/CTU_FEL_THESIS/images/py_chartflow.png is excluded by !**/*.png
  • docs/BT/CTU_FEL_THESIS/images/red.png is excluded by !**/*.png
  • docs/BT/CTU_FEL_THESIS/images/simpy.png is excluded by !**/*.png
  • docs/BT/CTU_FEL_THESIS/images/system_architecture.drawio.png is excluded by !**/*.png
  • docs/BT/Review/Prubeh-obhajoby.pdf is excluded by !**/*.pdf
  • docs/BT/Review/opponent_report_Koller.pdf is excluded by !**/*.pdf
  • docs/BT/Review/supervisor_report.pdf is excluded by !**/*.pdf
  • docs/BT/Yuan_Weize_Bachelor_Thesis_latest.pdf is excluded by !**/*.pdf
  • docs/thesis_doc/ECC_VS_RSA_SciM.png is excluded by !**/*.png
  • docs/thesis_doc/sources/espressif/esp32-s3-wroom-1_wroom-1u_datasheet_cn.pdf is excluded by !**/*.pdf
  • docs/thesis_doc/sources/espressif/esp32-s3_datasheet_en.pdf is excluded by !**/*.pdf
  • docs/thesis_doc/sources/espressif/esp32-s3_technical_reference_manual_cn.pdf is excluded by !**/*.pdf
  • docs/thesis_doc/sources/espressif/esp32_datasheet_en.pdf is excluded by !**/*.pdf
  • docs/thesis_doc/sources/espressif/esp32_technical_reference_manual_en.pdf is excluded by !**/*.pdf
  • docs/thesis_doc/sources/standards/NIST.SP.800-57pt1r5.pdf is excluded by !**/*.pdf
  • research/charts/survey_4p_comparison.pdf is excluded by !**/*.pdf
  • research/charts/survey_demographics.pdf is excluded by !**/*.pdf
  • research/charts/survey_local_premium.pdf is excluded by !**/*.pdf
  • research/charts/survey_psm.pdf is excluded by !**/*.pdf
  • research/data/cnb_eur_czk.csv is excluded by !**/*.csv
  • research/data/czso_food_consumption.csv is excluded by !**/*.csv
  • research/data/ee_frozen_market.csv is excluded by !**/*.csv
  • research/data/estimated_survey_indicators.csv is excluded by !**/*.csv
  • research/data/eurostat_food_cpi.csv is excluded by !**/*.csv
  • research/data/percapita_spending.csv is excluded by !**/*.csv
  • research/data/pricing_comparison.csv is excluded by !**/*.csv
  • research/data/real_survey_responses.csv is excluded by !**/*.csv
  • research/data/worldbank_gdp_ppp.csv is excluded by !**/*.csv
  • research/output/chocolate_consumption_cz.pdf is excluded by !**/*.pdf
  • research/output/chocolate_consumption_cz.png is excluded by !**/*.png
  • research/output/distribution_channels.pdf is excluded by !**/*.pdf
  • research/output/distribution_channels.png is excluded by !**/*.png
  • research/output/eur_czk_rate.pdf is excluded by !**/*.pdf
  • research/output/eur_czk_rate.png is excluded by !**/*.png
  • research/output/fruit_consumption_cz.pdf is excluded by !**/*.pdf
  • research/output/fruit_consumption_cz.png is excluded by !**/*.png
  • research/output/gdp_ppp_cz.pdf is excluded by !**/*.pdf
  • research/output/gdp_ppp_cz.png is excluded by !**/*.png
  • research/output/ice_cream_consumption_cz.pdf is excluded by !**/*.pdf
  • research/output/ice_cream_consumption_cz.png is excluded by !**/*.png
  • research/output/market_size_eastern_europe.pdf is excluded by !**/*.pdf
  • research/output/market_size_eastern_europe.png is excluded by !**/*.png
  • research/output/marketing_mix_4p.pdf is excluded by !**/*.pdf
  • research/output/marketing_mix_4p.png is excluded by !**/*.png
  • research/output/percapita_spending.pdf is excluded by !**/*.pdf
  • research/output/percapita_spending.png is excluded by !**/*.png
  • research/output/price_comparison.pdf is excluded by !**/*.pdf
  • research/output/price_comparison.png is excluded by !**/*.png
  • research/output/psm_analysis.pdf is excluded by !**/*.pdf
  • research/output/psm_analysis.png is excluded by !**/*.png
  • research/output/segmentation_radar.pdf is excluded by !**/*.pdf
  • research/output/segmentation_radar.png is excluded by !**/*.png
  • research/output/swot_analysis.pdf is excluded by !**/*.pdf
  • research/output/swot_analysis.png is excluded by !**/*.png
  • thesis/images/chocolate_consumption_cz.pdf is excluded by !**/*.pdf
  • thesis/images/chocolate_consumption_cz.png is excluded by !**/*.png
  • thesis/images/distribution_channels.pdf is excluded by !**/*.pdf
  • thesis/images/distribution_channels.png is excluded by !**/*.png
  • thesis/images/eur_czk_rate.pdf is excluded by !**/*.pdf
  • thesis/images/eur_czk_rate.png is excluded by !**/*.png
  • thesis/images/fruit_consumption_cz.pdf is excluded by !**/*.pdf
  • thesis/images/fruit_consumption_cz.png is excluded by !**/*.png
  • thesis/images/gdp_ppp_cz.pdf is excluded by !**/*.pdf
  • thesis/images/gdp_ppp_cz.png is excluded by !**/*.png
  • thesis/images/ice_cream_consumption_cz.pdf is excluded by !**/*.pdf
  • thesis/images/ice_cream_consumption_cz.png is excluded by !**/*.png
  • thesis/images/market_size_eastern_europe.pdf is excluded by !**/*.pdf
  • thesis/images/market_size_eastern_europe.png is excluded by !**/*.png
  • thesis/images/marketing_mix_4p.pdf is excluded by !**/*.pdf
  • thesis/images/marketing_mix_4p.png is excluded by !**/*.png
  • thesis/images/percapita_spending.pdf is excluded by !**/*.pdf
  • thesis/images/percapita_spending.png is excluded by !**/*.png
  • thesis/images/price_comparison.pdf is excluded by !**/*.pdf
  • thesis/images/price_comparison.png is excluded by !**/*.png
  • thesis/images/psm_analysis.pdf is excluded by !**/*.pdf
  • thesis/images/psm_analysis.png is excluded by !**/*.png
  • thesis/images/segmentation_radar.pdf is excluded by !**/*.pdf
  • thesis/images/segmentation_radar.png is excluded by !**/*.png
  • thesis/images/swot_analysis.pdf is excluded by !**/*.pdf
  • thesis/images/swot_analysis.png is excluded by !**/*.png
  • thesis/images/symbol-panevropska-univerzita-300x300.png is excluded by !**/*.png
  • web-survey/images/berrie_mockup.png is excluded by !**/*.png
📒 Files selected for processing (120)
  • .coderabbit.yaml
  • .gemini/styleguide.md
  • .github/FUNDING.yml
  • .github/workflows/thesis_ci.yml
  • .gitignore
  • LICENSE
  • README.md
  • README.zh-CN.md
  • broker/README.md
  • broker/README.zh-CN.md
  • broker/emqx/docker-compose.yml
  • broker/mosquitto/config/mosquitto.conf
  • broker/mosquitto/docker-compose.yml
  • certs/README.md
  • certs/README.zh-CN.md
  • docs/BT/CTU_FEL_THESIS/.version
  • docs/BT/CTU_FEL_THESIS/Makefile
  • docs/BT/CTU_FEL_THESIS/README.md
  • docs/BT/CTU_FEL_THESIS/acronyms.tex
  • docs/BT/CTU_FEL_THESIS/bachelorthesis.cls
  • docs/BT/CTU_FEL_THESIS/chapters/abstract.tex
  • docs/BT/CTU_FEL_THESIS/chapters/acknowledgements.tex
  • docs/BT/CTU_FEL_THESIS/chapters/appendix.tex
  • docs/BT/CTU_FEL_THESIS/chapters/architecture.tex
  • docs/BT/CTU_FEL_THESIS/chapters/background.tex
  • docs/BT/CTU_FEL_THESIS/chapters/conclusion.tex
  • docs/BT/CTU_FEL_THESIS/chapters/declaration.tex
  • docs/BT/CTU_FEL_THESIS/chapters/evaluation.tex
  • docs/BT/CTU_FEL_THESIS/chapters/implementation.tex
  • docs/BT/CTU_FEL_THESIS/chapters/introduction.tex
  • docs/BT/CTU_FEL_THESIS/latexmkrc
  • docs/BT/CTU_FEL_THESIS/literature.bib
  • docs/BT/CTU_FEL_THESIS/thesis-final.tex
  • docs/README.md
  • docs/README.zh-CN.md
  • docs/pdf2md/README.md
  • docs/pdf2md/README.zh-CN.md
  • docs/pdf2md/convert.py
  • docs/pdf2md/urls.example.txt
  • docs/thesis_doc/README_ESPTFLITE.md
  • docs/thesis_doc/README_LATEX.md
  • docs/thesis_doc/sources/espressif/esp32-s3-wroom-1_wroom-1u_datasheet_cn.md
  • docs/thesis_doc/sources/espressif/esp32-s3_datasheet_en.md
  • docs/thesis_doc/sources/espressif/esp32-s3_technical_reference_manual_cn.md
  • docs/thesis_doc/sources/espressif/esp32_datasheet_en.md
  • docs/thesis_doc/sources/espressif/esp32_technical_reference_manual_en.md
  • docs/thesis_doc/sources/standards/NIST.SP.800-57pt1r5.md
  • esphome/.gitignore
  • esphome/README.md
  • esphome/README.zh-CN.md
  • esphome/esp32.yaml
  • esphome/esp32s3.yaml
  • esphome/secrets.example.yaml
  • homeassistant/README.md
  • homeassistant/README.zh-CN.md
  • homeassistant/docker-compose.yml
  • homeassistant/fall_detection_nodered.json
  • private/.gitkeep
  • research/README.md
  • research/data/README.md
  • research/fetch_api_data.py
  • research/generate_charts.py
  • research/generate_fake_survey.py
  • research/output/psm_results.json
  • research/requirements.txt
  • sensors/Dockerfile
  • sensors/README.md
  • sensors/README.zh-CN.md
  • sensors/brokers.example.yml
  • sensors/docker-compose.yml
  • sensors/requirements.txt
  • sensors/sensor_simulator.py
  • sensors/smarthome_sim/__init__.py
  • sensors/smarthome_sim/__main__.py
  • sensors/smarthome_sim/benchmark.py
  • sensors/smarthome_sim/broker.py
  • sensors/smarthome_sim/cli.py
  • sensors/smarthome_sim/config.py
  • sensors/smarthome_sim/entities.py
  • sensors/smarthome_sim/simulator.py
  • sensors/smarthome_sim/utils.py
  • thesis/Makefile
  • thesis/README.md
  • thesis/acronyms.tex
  • thesis/chapters/abstract.tex
  • thesis/chapters/acknowledgements.tex
  • thesis/chapters/appendix.tex
  • thesis/chapters/conclusion.tex
  • thesis/chapters/declaration.tex
  • thesis/chapters/introduction.tex
  • thesis/chapters/methodology.tex
  • thesis/chapters/research.tex
  • thesis/chapters/results.tex
  • thesis/chapters/theory.tex
  • thesis/latexmkrc
  • thesis/literature.bib
  • thesis/main.tex
  • thesis/thesis.cls
  • web-survey/README.md
  • web-survey/backend.py
  • web-survey/dashboard.css
  • web-survey/dashboard.html
  • web-survey/dashboard.js
  • web-survey/deploy/README.md
  • web-survey/deploy/cloudflare/README.md
  • web-survey/deploy/cloudflare/schema.sql
  • web-survey/deploy/cloudflare/worker.js
  • web-survey/deploy/cloudflare/wrangler.toml.example
  • web-survey/deploy/launchd/com.berrie.survey.plist
  • web-survey/deploy/systemd/berrie-survey.service
  • web-survey/deploy/vercel/README.md
  • web-survey/deploy/vercel/api/submit.js
  • web-survey/deploy/vercel/package.json
  • web-survey/deploy/vercel/vercel.json
  • web-survey/export_data.py
  • web-survey/index.html
  • web-survey/script.js
  • web-survey/scripts/install_systemd_service.sh
  • web-survey/scripts/start_backend.sh
  • web-survey/style.css

📝 Walkthrough

Walkthrough

This pull request comprehensively restructures the repository from an IoT smart home simulator platform to a marketing research thesis project. The change removes the entire sensor simulator, broker, certificate, and IoT device infrastructure while introducing a new thesis focused on "Berrie" brand market entry, along with a complete web-based survey system and supporting research data pipeline for analyzing market conditions and consumer preferences.

Changes

Cohort / File(s) Summary
IoT Infrastructure Removal
broker/*, certs/*, esphome/*, homeassistant/*, sensors/*
Entire smart home ecosystem deleted, including Docker Compose configurations for MQTT brokers (EMQX, Mosquitto), TLS certificate generation utilities, ESPHome device firmware configurations (ESP32/ESP32-S3), Home Assistant integration files, and Python sensor simulator module with benchmarking/CLI/configuration layers.
Original Thesis Removal
docs/BT/CTU_FEL_THESIS/*, docs/README*, docs/thesis_doc/*, docs/pdf2md/*
Deleted entire bachelor thesis on IoT smart homes (40+ files), LaTeX build infrastructure, bibliography, acronyms, supporting documentation, and PDF-to-Markdown conversion utilities previously supporting the IoT project.
New Thesis Addition
thesis/*
New complete LuaLaTeX thesis structure on Berrie brand market entry, including custom document class, acronyms (marketing/research-focused), chapters covering theory, methodology, research findings, and results with strategic recommendations, plus build configuration (Makefile, latexmkrc).
Repository Metadata & Configuration
.coderabbit.yaml, .gitignore, LICENSE, README.md, README.zh-CN.md, .github/workflows/thesis_ci.yml, .github/FUNDING.yml
Deleted CodeRabbit AI configuration, GitHub Actions thesis CI/CD workflow, GitHub sponsorship configuration, and funding metadata. Updated .gitignore to track thesis/research artifacts while removing IoT-specific patterns. Removed MIT license. Replaced project README scope from IoT simulator quick-start to marketing thesis documentation with thesis/research/survey directory layout.
Research Data Pipeline
research/*
New module introducing data management infrastructure: requirements.txt for dependencies (pandas, matplotlib, seaborn), README documenting dataset structure and provenance rules, CSV data directory with provenance documentation, and Python scripts for fetching external API data (Eurostat, CNB, World Bank) and generating publication-ready charts (demographics, competitive positioning, price sensitivity, local premium analysis).
Web Survey System
web-survey/*
Complete self-contained CAWI survey platform featuring Python backend with HTTP server and SQLite persistence, HTML/CSS/JS frontend with multi-step form (demographics, product ratings, price sensitivity, willingness-to-pay), metrics dashboard with data quality tracking, and deployment templates for systemd/launchd (local persistence), Cloudflare Workers + D1 (serverless), and Vercel Functions + Postgres (cloud database), plus data export utilities.
Configuration Additions
.gemini/styleguide.md
New repository-wide style guide defining LuaLaTeX build workflow, data integrity rules (VERIFIED/DERIVED/SUBJECTIVE categorization), bibliography requirements, chart generation procedures, and README conventions for thesis documentation.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~75 minutes

Possibly related PRs

Poem

🐰 Hop away, smart homes of old—
Berrie's frozen fruits now bold!
From circuits bright to market might,
One rabbit charts the survey's flight! 🍓📊

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

@yuanweize yuanweize closed this Apr 20, 2026
@yuanweize
yuanweize deleted the feat/thesis-formatting-improvements branch April 20, 2026 02:37
@yuanweize
yuanweize removed the request for review from Copilot April 20, 2026 03:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant